import { onBeforeRouteUpdate } from 'vue-router'
import { getTopCategoryAPI } from '@/api/category'
import { ref, onMounted} from 'vue'
import { useRoute } from 'vue-router'

export const useCategory = () => {
  const route = useRoute()
  const categoryData = ref({})
  const getCategory = async (id = route.params.id) => {
    // 如何在setup中获取路由参数 useRoute() -> route 等价于this.$route
    const res = await getTopCategoryAPI(id)
    categoryData.value = res.result
  }
  
  
  
  //路由参数变化时,可以把分类数据接口重新发送
  onBeforeRouteUpdate((to)=>{
    //存在问题:使用最新的路由参数请求最新的分类数据
    //需要传递最新的路由参数给分类数据接口
    getCategory(to.params.id)
  })
  
  onMounted(()=>{
    getCategory(route.params.id)
  })

  return {
    categoryData
  }
}